package com.kk.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
/**
 * @author kl
 * @version 1.0
 * @description: 操作日志实体类
 * @date 2025/10/17 下午2:38
 */
@Data
@Accessors(chain = true)
@TableName("sys_operation_log")
public class SysOperationLog {



        @TableId(type = IdType.AUTO)
        private Long id;

        /**
         * 追踪ID（用于链路追踪）
         */
        private String traceId;

        /**
         * 用户ID
         */
        private Long userId;

        /**
         * 用户账号
         */
        private String username;

        /**
         * 模块名称
         */
        private String module;

        /**
         * 操作类型
         */
        private String operationType;

        /**
         * 操作描述
         */
        private String description;

        /**
         * 方法名称
         */
        private String method;

        /**
         * 请求方式
         */
        private String requestMethod;

        /**
         * 请求URL
         */
        private String requestUrl;

        /**
         * 请求参数
         */
        private String requestParams;

        /**
         * 请求体
         */
        private String requestBody;

        /**
         * 返回结果
         */
        private String responseResult;

        /**
         * 操作IP
         */
        private String operationIp;

        /**
         * 操作地点
         */
        private String operationLocation;

        /**
         * 浏览器类型
         */
        private String browser;

        /**
         * 操作系统
         */
        private String os;

        /**
         * 执行时长（毫秒）
         */
        private Integer executeTime;

        /**
         * 操作状态（0失败 1成功）
         */
        private Integer operationStatus;

        /**
         * 错误信息
         */
        private String errorMsg;

        /**
         * 操作时间
         */
        private LocalDateTime operationTime;

        /**
         * 创建时间
         */
        @TableField(fill = FieldFill.INSERT)
        private LocalDateTime createTime;
}
